extends Node2D

# 爆炸粒子效果的预加载
var explosion_effect = preload("res://scn/Brick/BrickExplosion.tscn")

func _on_area_2d_body_entered(body: Node2D) -> void:
	if body.is_in_group("Player"):
		# 播放爆炸动画
		explode()
		
func explode() -> void:
	# 禁用碰撞，防止多次触发
	$StaticBody2D/CollisionShape2D.disabled = true
	$Area2D/q.disabled = true
	
	# 创建爆炸效果
	if explosion_effect:
		# 创建爆炸效果实例
		var explosion = explosion_effect.instantiate()
		# 设置爆炸效果的位置与砖块相同
		explosion.global_position = global_position
		# 将爆炸效果添加到父节点
		get_parent().add_child(explosion)
		# 立即隐藏砖块精灵
		$Brick.visible = false
		# 延迟一小段时间后完全移除砖块
		await get_tree().create_timer(0.1).timeout
		# 移除砖块场景
		queue_free()
	else:
		# 如果没有预加载的爆炸效果，使用简单的缩放和淡出动画
		var tween = create_tween()
		tween.set_parallel(true)
		tween.tween_property($Brick, "modulate", Color(1, 1, 1, 0), 0.3)
		tween.tween_property($Brick, "scale", Vector2(1.5, 1.5), 0.3)
		# 动画完成后移除节点
		await tween.finished
		queue_free()
